package design_pattern.command.demo01;

/**
 * @version 1.0.0
 * Created by cyd on 2022-06-16 11:02:52
 * @ClassName : design_pattern.command.demo01.main
 * @Description : 类描述
 */
public class Main {

    /**
     * 在实际开发中，receiver，command，invoker之间的关系，由spring容器的依赖注入来维护
     * 我们作为框架的客户端，只需要将invoker注入自己的组件，调用executeCommand()方法即可；
     * 设计模式的存在，是为了有利于服务端代码的维护和拓展，并不是为了方便客户端开发者理解代码逻辑，实际上服务端代码对客户端透明
     */
    public static void main(String[] args) {
        ConcreteReceiver receiver = new ConcreteReceiver();
        ConcreteCommand command = new ConcreteCommand(receiver);
        Invoker invoker = new Invoker();
        invoker.setCommand(command);
        invoker.executeCommand();
    }
}
